﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Database;

namespace Fabrica10.Negocios
{
    public class GerarCalculoDespesa
    {
        public void ReceberHorasTrabalhadas(int idFuncionario, string idPaciente, decimal quantidade)
        {
            //fazer cálculo, consultar horas trabalhadas do médico no banco de dados
            //preencher folha de pagamento e nota fiscal com imposto fixo

            var ctx = new DataClasses1DataContext();

            var qry = from f in ctx.Funcionarios
                      where f.Id == idFuncionario
                      select f;

            var funcionario = qry.Single();

            decimal custototal = ((decimal)funcionario.SalarioHora)*quantidade;
            
            FolhaDePagamento p = new FolhaDePagamento();
            p.Data = DateTime.Now;
            p.IdFuncionario = idFuncionario;
            p.TotalPagamento = custototal;
            
            ctx.FolhaDePagamentos.InsertOnSubmit(p);

            NotasFiscaisBoleto n = new NotasFiscaisBoleto();
            n.IdCliente = idPaciente;
            n.Quantidade = (int)quantidade;

            switch (funcionario.TipoFuncionario)
                    {
                        case 0: //medico
                            n.Item = "Consulta com " + funcionario.Nome;
                            break;
                        case 1: // sessao
                            n.Item = "Sessão com " + funcionario.Nome;
                            break;  
                        case 2: // outros
                            n.Item = "Serviços";
                            break;
                        case null:
                            throw new Exception("Parâmetro inválido de TipoFuncionario");
                    }

            n.PrecoUnitario = (decimal)funcionario.SalarioHora;
            n.Data = DateTime.Now;
            n.Imposto = (decimal)0.1; //imposto fixo de 0.1

            ctx.NotasFiscaisBoletos.InsertOnSubmit(n);
            ctx.SubmitChanges();
        }        
    }
}
